import { Component, Prop, Vue, Inject } from 'vue-property-decorator'
import BasePageMdl from '@/model/customPageCfg/BasePageMdl'
// import { CUSTOM_FORM_MODE } from '@/optionsCfg/Constants'
// import { CustPageMdl } from '@/model/cust-page/CustPageMdl'
// import { BaseContainerMdl } from '@/model/cust-page/base/BaseContainerMdl'

@Component
export default class CustPageCmpMixin extends Vue {
    a = 1
    // @Inject()
    // custPage!: CustPageMdl

    // @Prop({
    //     type: String,
    //     default: CUSTOM_FORM_MODE.DESIGN_MODE,
    // })
    // mode!: string

    @Prop(BasePageMdl)
    model!: BasePageMdl

    // get isDesignMode() {
    //     return this.mode === CUSTOM_FORM_MODE.DESIGN_MODE
    // }

    // get isSelected() {
    //     if (this.model && this.model.getSelfPage()) {
    //         return this.model.getSelfPage()!._selectedMdl === this.model
    //     }
    //     return false
    // }

    // onDragChange(evt: any, custPage: CustPageMdl) {
    //     console.log('onDragChange')
    //     if (!evt.added) {
    //         return false
    //     }
    //     const added = evt.added
    //     const ele = added.element
    //     if (this.model instanceof BaseContainerMdl) {
    //         if (ele.elementClass) {
    //             this.model.children.splice(added.newIndex, 1)
    //             const eleObj = new ele.elementClass() as BasePageMdl
    //             eleObj.id = this.custPage.nextId()
    //             eleObj.name = ele.component + '_' + eleObj.id
    //             eleObj.component = ele.component
    //             this.model.addChild(eleObj, added.newIndex)
    //             if (eleObj instanceof BaseContainerMdl) {
    //                 eleObj.addEmptyCmp()
    //             }
    //         } else if (ele.regMdlName) {
    //             this.model.children.splice(added.newIndex, 1)
    //             //获取当前拖拽组件的信息
    //             const it = ele
    //             if (it) {
    //                 //找到当前组件在原items里面的位置删除
    //                 this.removedItems(it, it._parent ? it._parent.children : this.custPage.children)

    //                 it._parent = this.model
    //                 //在新位置重新添加拖拽组件
    //                 this.model.children.splice(added.newIndex, 0, it)
    //             }
    //         } else {
    //             ele._parent = this.model
    //         }
    //     }
    //     return false
    // }
    // //获取组件在原items里面的位置并删除
    // removedItems(ele: BasePageMdl, items: any[]) {
    //     console.log('removedItems')
    //     const pos = items.indexOf(ele)
    //     if (pos >= 0) {
    //         items.splice(pos, 1)
    //         return
    //     }
    //     for (const el of items) {
    //         if (el instanceof BaseContainerMdl) {
    //             for (const it of el.children) {
    //                 this.removedItems(ele, el.children)
    //             }
    //         }
    //     }
    // }
    // deleteItem() {
    //     console.log('deleteItem')
    //     const tmpParent = this.model._parent
    //     if (tmpParent instanceof BaseContainerMdl) {
    //         ;(tmpParent as BaseContainerMdl).removeChild(this.model)
    //     } else {
    //         console.warn('not BaseContainerMdl')
    //     }
    // }

    // clickElement() {
    //     console.log('clickElement')
    //     if (!this.isDesignMode) return
    //     this.model.getSelfPage()!._selectedMdl = this.model
    // }
}
